using Admin2025.Application.Common;
using Admin2025.Application.Dtos;

namespace Admin2025.Application.Services;

public interface IUserAppServices
{
  Task<IEnumerable<UserDto>> GetAllAsync(PageRequestDto pageRequestDto);
  Task<UserDto> GetByIdAsync(Guid id);
  Task CreateAsync(CreateUserDto dto);
  Task UpdateAsync(Guid id, UpdateUserDto dto);
  Task DeleteAsync(Guid id);
  Task EnableAsync(Guid id);  // 是否启用
  Task<ApiResult> DisableAsync(Guid id);   // 禁用
  Task AssignRoleAsync(Guid userId, Guid roleId);  // 分配角色
  Task RemoveRoleAsync(Guid userId, Guid roleId);   // 删除角色
  Task UpdateAvatarAsync(Guid userId, string AvatarUrl);   // 更新头像
  Task UpdateNicknameAsync(Guid userId, string nickname);   // 更新昵称
  Task ChangePasswordAsync(Guid userId, string oldPwd, string newPwd);   // 修改密码
}